#ifndef _OPENGLAPPFRAMEWORK_TEXTUREMANAGER_H_
#define _OPENGLAPPFRAMEWORK_TEXTUREMANAGER_H_

#include "OpenglAppFramework/inc/Texture.h"

class Shader;

using TextureIdNameItem = std::pair<uint32_t, std::string>;     // texture_id, sampler_name
using TextureIdNames = std::vector<TextureIdNameItem>;


class TextureManager {
public:
    TextureManager();

    /**
     * @brief 设置纹理id和在shader中对应的采样器的名称
     */
    void setTextureName(uint32_t texutre_id, const std::string& sampler_name);

    /**
     * @brief 给texture分配采样器，并上传采样器的编号
     */
    void uploadShaderData(Shader* s);

private:
    TextureIdNames m_tex_id_name;  
};

#endif//_OPENGLAPPFRAMEWORK_TEXTUREMANAGER_H_
